#include"err.hpp"
#include"log.hpp"
#include"epoll_server.hpp"
#include <string>




void user(const std::string& str)
{
    std::cout << "use error !!!!! \n\t   user-> " << str <<" [port_number] \n\n"
              << std::endl;
}

std::string callback(std::string& request)
{
    std::string ret ="";
    ret += "server echo: ";
    ret += request;
    return ret;
}



int main(int argc, char *argv[])
{
    // if (argc != 2)
    // {
    //     user("test");
    //     return 1;
    // }

    // int16_t port = std::stoi(argv[1]);
    // int16_t port = std::stoi(std::string(argv[1]));

    zxf::epoll_server ss(8888);
    // zxf::epoll_server ss();
    // 守护进程化
    // daemonSelf();
    // 就和当前会话无关了

    ss.initServer();
    ss.start(callback);
    return 0;
}


//总结 一下
// epoll_create epoll_ctl epoll_wait
// 是关键的函数
// epoll服务器写法简单，在底层自己创建红黑树维护事件，不需要我们自己创建数组来维护，我们关心的事件，很方便。
// epoll，默认收LT,也就是水平触发 , 事件不处理就会一直循环,一直呼喊你
// 可以设置 EPOLLET,设置为边沿触发, 事件到来了,只会呼叫一次.
// 在ET模式下 关心的文件描述符必须设置为非阻塞状态,




